const Koa = require('koa')
const Router = require('koa-Router')
const cors = require('@koa/cors')
const bodyparser = require('koa-bodyparser')
const { koaBody } = require('koa-body')
const OSS = require('ali-oss')

let app = new Koa()
let router = new Router()

const client = new OSS({
    // yourregion填写Bucket所在地域。以华东1（杭州）为例，Region填写为oss-cn-hangzhou。
    region: 'oss-cn-beijing',
    // 从环境变量中获取访问凭证。运行本代码示例之前，请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    accessKeyId: "LTAI5tA9kmF1xbjmKj99GYkK",
    accessKeySecret: "v6SM5Ok0EveHIWd3eoanQTi21K6wBl",
    // 填写Bucket名称。
    bucket: 'ailii',
});


app.use(bodyparser())
app.use(cors())
app.use(koaBody({
    multipart: true
}))
app.use(router)



router.post('/api/upload', async (ctx) => {
    let file = ctx.request.files.file
    console.log(file);
        try {
        // 填写OSS文件完整路径和本地文件的完整路径。OSS文件完整路径中不能包含Bucket名称。
        // 如果本地文件的完整路径中未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件。
        const result = await client.put(
            file.originalFilename,
            file.filepath
        );
        console.log(result);
        ctx.body = {
            code: 200,
            msg: "oss",
            result: result.url
        }
    } catch (e) {
        console.log(e);
    }
})

app.listen(9900, () => {
    console.log('单文件上传服务端启动成功');
})